﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Media.MediaProperties;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Documents;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;

// The Templated Control item template is documented at http://go.microsoft.com/fwlink/?LinkId=234235

namespace Microsoft.Media.CaptureClient.Sample
{
    public sealed class ProfileViewer : Control
    {
        public ProfileViewer()
        {
            this.DefaultStyleKey = typeof(ProfileViewer);
        }

        DependencyProperty AudioCaptureEncodingProfileProperty = DependencyProperty.Register("AudioCaptureEncodingProfile", typeof(AudioEncodingProperties), typeof(ProfileViewer), null);

        public AudioEncodingProperties AudioCaptureEncodingProfile
        {
            get { return GetValue(AudioCaptureEncodingProfileProperty) as AudioEncodingProperties; }
            set { SetValue(AudioCaptureEncodingProfileProperty, value); }
        }

        DependencyProperty VideoCaptureEncodingProfileProperty = DependencyProperty.Register("VideoCaptureEncodingProfile", typeof(VideoEncodingProperties), typeof(ProfileViewer), null);

        public VideoEncodingProperties VideoCaptureEncodingProfile
        {
            get { return GetValue(VideoCaptureEncodingProfileProperty) as VideoEncodingProperties; }
            set { SetValue(VideoCaptureEncodingProfileProperty, value); }
        }

        DependencyProperty AudioOutputEncodingProfilesProperty = DependencyProperty.Register("AudioOutputEncodingProfiles", typeof(IList<AudioEncodingProperties>), typeof(ProfileViewer), null);

        public IList<AudioEncodingProperties> AudioOutputEncodingProfiles
        {
            get { return GetValue(AudioOutputEncodingProfilesProperty) as IList<AudioEncodingProperties>; }
            set { SetValue(AudioOutputEncodingProfilesProperty, value); }
        }

        DependencyProperty VideoOutputEncodingProfilesProperty = DependencyProperty.Register("VideoOutputEncodingProfiles", typeof(IList<VideoEncodingProperties>), typeof(ProfileViewer), null);

        public IList<VideoEncodingProperties> VideoOutputEncodingProfiles
        {
            get { return GetValue(VideoOutputEncodingProfilesProperty) as IList<VideoEncodingProperties>; }
            set { SetValue(VideoOutputEncodingProfilesProperty, value); }
        }
    }
}
